package cn.com.xy.sms.sdk.tagsearch;

import android.content.Context;

import java.util.List;

import cn.com.xy.sms.sdk.util.StringUtils;
import cn.com.xy.sms.sdk.util.ThreadPoolManager;
import cn.com.xy.sms.sdk.util.XyUtil;
import cn.com.xy.sms.util.SdkCallBack;

/**
 * @author kwb1
 * @version 1.0
 * @created 17-02-2017 16:37:52
 *
 * jira : HUAWEI-2296
 */
public class TagManager {

    /**
     * @params sceneList : 情景id列表
     * @return List<String> 情景id列表所包含的标签列表
     */
    public static List<String> getFirstTags(List<String> sceneList) {
        return TagCacheManager.getInstance().getFirstTags(sceneList);
    }

    /**
     * 获取二级标签
     *
     * @param tag 标签名称
     * @return
     */
    public static List<String> getSecondTags(String tag) {
        if (StringUtils.isNull(tag)) {
            return null;
        }
        return TagCacheManager.getInstance().getSecondTags(tag);
    }

    /**
     * 获取情景id列表
     *
     * @param tag 标签名称
     * @return 获取单个标签所对应的情景id列表
     */
    public static List<String> getSceneIdList(String tag) {
        if (StringUtils.isNull(tag)) {
            return null;
        }
        return TagCacheManager.getInstance().getSceneIdList(tag);
    }

    /**
     * 获取一级标签
     * @params sceneList : 情景id列表
     * @params sdkCallBack: 异步回调接口
     * sdkCallBack: List<String> 情景id列表所包含的标签列表
     */
    public static void getFirstTagsAsy(final List<String> sceneList, final SdkCallBack sdkCallBack) {
        ThreadPoolManager.NUMBER_QUERY.execute(new Runnable() {
            @Override
            public void run() {
                List<String> result = getFirstTags(sceneList);
                XyUtil.doXycallBackResult(sdkCallBack, result);
            }
        });
    }

    /**
     * 获取二级标签
     * @params tag : 标签名称
     * @params sdkCallBack: 异步回调接口
     * sdkCallBack: List<String> 情景标签所对应的二级标签
     */
    public static void getSecondTagsAsy(final String tag, final SdkCallBack sdkCallBack) {
        ThreadPoolManager.NUMBER_QUERY.execute(new Runnable() {
            @Override
            public void run() {
                List<String> result = getSecondTags(tag);
                XyUtil.doXycallBackResult(sdkCallBack, result);
            }
        });

    }

    /**
     * 获取情景id列表
     *
     * @param tag 标签名称
     * sdkCallBack: List<String> 获取单个标签所对应的情景id列表
     */
    public static void getSceneIdListAsy(final String tag, final SdkCallBack sdkCallBack) {

        ThreadPoolManager.NUMBER_QUERY.execute(new Runnable() {
            @Override
            public void run() {
                List<String> result = getSceneIdList(tag);
                XyUtil.doXycallBackResult(sdkCallBack, result);
            }
        });

    }

    public static void updateTag(){
        new TagUpdateManager().updateTagData();
    }


}